Generating, Locating, and Applying Systematic Edits by Learning from Example(s) Ph.D. Proposal
نویسنده
چکیده
Programmers make systematic edits—similar, but not identical changes to multiple places during software development and maintenance. Finding all the correct locations and making correct edits is a tedious and error-prone process. Existing tools for automating systematic edits are limited because they do not support edit generation, edit location suggestion, or edit application at the same time, except for specialized or trivial edits. However, since many similar changes are needed in locations that contain similar context (the surrounding dependent code and syntactic structures), there is an opportunity to automate the systematic editing process by inferring edit scripts and characterizing their context from code that developers changed already. The challenge is we need to abstract and generalize from example(s) in order to create an edit script that is correct in many different contexts. This thesis seeks to substantially improve the efficiency and correctness of automatic systematic program transformation. (1) We design and implement Sydit to generate an abstract, context-aware edit script from a single changed method, and apply it to user-selected target method(s). This approach correctly performs many edits, but we show that the edit scripts from one example are not well suited to finding new locations. (2) We thus design and implement Lase to generate a partially abstract, context-aware edit script from multiple changed methods and show how to use the same script to automatically find edit locations and apply edits. Our experiments compare the systematic edits generated by Lase and those created by developers and find that Lase is effective at finding correct locations and making correct edits. (3) We propose to explore a new approach to generate high-level, collaborative edit scripts that span more than one method to handle sophisticated program transformations, such as refactoring. (4) Finally, we propose an approach for checking the correctness of the transformations. Our work aims at relieving developers from tedious and error-prone code changes by performing systematic transformations in a consistent way, and by guiding automated program repair, feature addition, and refactoring.
منابع مشابه
An Analysis of Self-Regulatory Learning Strategies in Secondary School Blended Learning Atmospheres: A Synthesis Research
This synthesis research has aimed to identify the features of blended learning environments which support self-regulatory learning strategies in high school students. The statistical population was derived from five foreign databases, consisting of 128 articles from 2017 to 2020. The data obtained were integrated using Sandelowski & Barroso's meta-synthesis method (2005). STROBE Checklist was u...
متن کاملSystematic review of learning changes as technology grows
Introduction: With the advent of information and communication technology, in recent decades, a new gate opened to human beings and all its biological dimensions, and created many changes in the field of education and learning. Accordingly, the purpose of this study is to investigate how changes have been made in how learners learn from the growth and advancement of technologies. Methods:...
متن کاملAn analysis of cultural land use spatial distributions using geographic information system in District 3 of Tehran Municipality
This research has been conducted with the aim of analyzing the spatial distribution of existing cultural land use in district 3 of Tehran Municipality and proposal for new site selection for cultural land use in this district. After studying previous researches on the issues of land use and site selection, 13 indicators for locating cultural land use were identified then by using distance mappi...
متن کاملInvestigating a Systematic Approach to the Promotion of EFL Learners’ Autonomy
Abstract Autonomy is the ability to take charge of one’s own learning. However, this ability is not inborn and must be acquired by formal instruction (Holec, 1981). Therefore, to offer a systematic approach to the devel-opment of learner autonomy in language learning process, Benson (2001) argues that learner autonomy is described in terms of learners’ control over the three dimensions of lea...
متن کاملAutomatic Vandalism Detection in Wikipedia: Towards a Machine Learning Approach
Since the end of 2006 several autonomous bots are, or have been, running on Wikipedia to keep the encyclopedia free from vandalism and other damaging edits. These expert systems, however, are far from optimal and should be improved to relieve the human editors from the burden of manually reverting such edits. We investigate the possibility of using machine learning techniques to build an autono...
متن کامل